/**
 * 
 */
package br.ufrgs.inf.cwsmart.mining;

import java.util.List;

import br.ufrgs.inf.cwsmart.core.InformationTypeEnum;

/**
 * @author Rodrigo S Lumertz
 *
 */
public abstract class Mining {

	/**
	 * The constructor automatically called by the class that implements the matcher 
	 */
	public Mining() {				
	}
	
	/**
	 * Retrieves informations from the data mart. 
	 * 
	 * @param miningOp The parameters to query the data mart. 
	 * @return A list with the results.
	 */
	public abstract List<MiningResult> mine(MiningOperation miningOp);
	
	/**
	 * Adds a information into the data mart.
	 * 
	 * @param iId The id of the information. Identifies uniquely an execution.
	 * @param cwsId The CWS id involved in the execution.
	 * @param iType The information type.
	 * @param value The value of the information.
	 */
	public void addData(int iId, String cwsId, InformationTypeEnum iType, String value) {
		// TODO: create the appopriate sql and call the datamartManager to execute
		System.out.println("TODO: [framework] create the sql to add data on the datamart db and execute it.");
	}
}
